Method for on-demand generation of individual random numbers of a sequence of random numbers of a 1/f noise

ABSTRACT

A method for adaptively generating a series of random numbers of a 1/f noise is based on the use of normally distributed random numbers. The method enables a need-oriented generation of random numbers of the 1/f noise, whereby additional random numbers of the 1/f noise are also possible during a simulation calculation.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application is a continuation of copending International Application No. PCT/DE01/04376, filed Nov. 22, 2001, which designated the United States and was not published in English.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] The invention relates to a method for generating sequences of random numbers of a 1/f noise.

[0004] Random numbers of a 1/f noise can be used, for example, in a transient circuit simulation that takes account of noise influences. The 1/f noise is understood as a stochastic process with a specific frequency spectrum that can be described by the equation $\left. {{{S(f)} \propto \frac{1}{f^{\beta}}},{\beta \in}} \right\rbrack 0,{1\left\lbrack . \right.}$

[0005] 1/f noise sources are suitable for modeling noise influences in a multiplicity of technical and physical systems, and for systems for estimating and forecasting events on the financial markets. In particular, many electronic components such as, for example, pn diodes and MOS field-effect transistors exhibit 1/f noise sources.

[0006] It is possible to approximate 1/f noise sources by carrying out a summation of the effects of many noise sources which each exhibit a Lorentz-spectrum as a frequency spectrum. Such noise sources can be modeled, for example, by the system response of a linear time-invariant system, which can also be denoted as an LTI-system, at whose system input white noise is applied. It is disadvantageous in this mode of procedure for the dimension of the system of differential equations that are solved numerically to be excessively inflated. The result of this is long computing times and a high storage requirement of a computer system that is used to simulate a system that is subject to the influence of 1/f noise.

SUMMARY OF THE INVENTION

[0007] It is accordingly an object of the invention to provide a method for on-demand generation of individual random numbers of a sequence of random numbers of 1/f noise that overcomes the above-mentioned disadvantages of the prior art methods of this general type, which can be carried out quickly and with a low computational outlay. It is also an object of the invention to specify an improved method for simulating a technical system that is subject to 1/f noise. Finally, the aim is also to specify a computer system having a computer program for determining sequences of random numbers of 1/f noise that can be executed quickly and that lays claim to only a few resources of a computer system.

[0008] In accordance with the invention, the problem of noise simulation in the modeling of the system to be simulated is transformed into the problem of generating a random number sequence. In accordance with the invention, the correlations of the random numbers are determined, and this is used for a simple and accurate generation of the corresponding random number sequences.

[0009] The method according to the invention for generating at least one sequence of random numbers of 1/f noise first provides the following steps in this case:

[0010] a) determining a desired spectral value β; and

[0011] b) determining an intensity constant const.

[0012] Characteristics of the 1/f noise to be simulated are thereby fixed.

[0013] As a result, the number of random numbers of the 1/f noise that are to be generated, and a starting value for a running variable n used for the simulation are fixed.

[0014] Until the desired number of elements y(n) of one or more vectors y of length n are calculated from 1/f-distributed random numbers, the invention provides the loop-type repetition of the following steps:

[0015] a) increasing a current value of a running variable n by 1;

[0016] b) fixing a simulation time step [t_(n−1); t_(n)];

[0017] c) determining an element C_(ij) of a covariance matrix C of dimension (n×n) according to: ${{\underset{\underset{\_}{\_}}{C}}_{i\quad j}:={{const} \cdot \left( {{- {{t_{j} - t_{i}}}^{\beta + 1}} + {{t_{j - 1} - t_{i}}}^{\beta + 1} + {{t_{j} - t_{i - 1}}}^{\beta + 1} - {{t_{j - 1} - t_{i - 1}}}^{\beta + 1}} \right)}};$ i, j = 1,  …  , n

[0018] d) determining a matrix C⁻¹ by inverting the covariance matrix C;

[0019] e) determining a variable σ in accordance with the rule

σ=sqrt(1/e(n,n)),

[0020] where sqrt denotes the “square root” function, and e(n,n) denoting the element of the inverted covariance matrix C⁻¹ indexed by (n,n);

[0021] f) determining a (0,1)-normally distributed random number which forms the nth component of a vector x of length n;

[0022] g) forming a variable μ from the first (n−1) components of the nth row of the inverted covariance matrix C⁻¹ and the (n−1) elements of the vector y which were calculated for a preceding (n−1) simulation time step, specifically in accordance with the following rule: $\mu:={- \frac{y_{({n - 1})}^{T} \cdot {\underset{\underset{\_}{\_}}{C}}_{\bullet,n}^{- 1}}{{\underset{\underset{\_}{\_}}{C}}_{n,n}^{- 1}}}$

[0023] y_((n−1)) denoting the first (n−1) components of the vector y,

[0024] C_(·,n) ⁻¹ denoting the first (n−1) components of the nth row of the inverted covariance matrix C⁻¹, and C_(n,n) ⁻¹ denoting the element of the inverted covariance matrix C⁻¹ indexed by (n,n); and

[0025] h) calculating an element y(n) of the vector y of length n from 1/f-distributed random numbers according to the following rule:

Y(n)=x(n)*σ+μ.

[0026] Simulations of technical systems can be arbitrarily lengthened with the aid of the method according to the invention. It is possible for this purpose to generate additional 1/f-distributed random numbers in a simple way when already generated 1/f-distributed random numbers are to hand. Moreover, a simulation can be based on results of previously simulated time intervals. This so-called restart capability constitutes a very important property for the practice of simulation. It is precisely for 1/f noise sources that this can be achieved only with difficulty, because random numbers that simulate a 1/f noise source for a specific time interval depend on random numbers for earlier time intervals that have already been determined numerically. The present invention also permits the use of an adaptive step size control without thereby significantly increasing the computation times for the simulation of the technical system. Such an adaptive step size control considerably increases the precision and the computation time efficiency in the numerical determination of the dynamic performance of a simulated technical system.

[0027] It is no longer necessary in the case of the method according to the invention to prescribe the time interval to be simulated. Precisely by the provision of variable step sizes, it is also possible to perform an adaptation to current system dynamics, and this increases the accuracy of the simulations.

[0028] The present invention specifies a method for generating sequences of 1/f-distributed random numbers successively, that is to say element by element. In this case, the method ensures that each newly generated random number depends in a correct way in the stochastic sense on the previously generated 1/f-distributed random numbers. It is thereby possible to generate the respectively required random numbers in the course of the numerical simulation of a circuit.

[0029] The invention uses the theory of conditional probability density in order to generate a 1/f-distributed random number that correctly ensures the stochastic relationship of the random number with the already generated random numbers required for preceding simulation steps.

[0030] In a particularly advantageous refinement of the method according to the invention, q sequences of random numbers of a 1/f noise are calculated simultaneously, instead of the steps to be repeated in the loop-type fashion:

[0031] a) determining a (0,1)-normally distributed random number which forms the nth component of a vector x of length n;

[0032] b) forming a variable u from the first (n−1) components of the nth row of the inverted covariance matrix C⁻¹ and the (n−1) elements of the vector y which were calculated for a preceding (n−1) simulation time step, specifically in accordance with the following rule: $\mu:={- \frac{y_{({n - 1})}^{T} \cdot {\underset{\underset{\_}{\_}}{C}}_{\bullet,n}^{- 1}}{{\underset{\underset{\_}{\_}}{C}}_{n,n}^{- 1}}}$

[0033] where y_((n−1)) denotes the first (n−1) components of the vector y, C_(·,n) ⁻¹ denotes the first (n−1) components of the nth row of the inverted covariance matrix C⁻¹, and C_(n,n) ⁻¹ denotes the element of the inverted covariance matrix C⁻¹ indexed by (n,n); and

[0034] c) calculating an element y(n) of a vector y of length n from 1/f-distributed random numbers according to the following rule:

Y(n)=x(n)*σ+μ,

[0035] the following steps are provided:

[0036] d) determining a quantity q of (0,1)-normally distributed random numbers x_(k,n) which form the respective last component of the vectors x_(k) of length n, k=1, . . . , q. It is to be borne in mind in this case that the respective first (n−1) components of the vectors x_(k) have already been calculated previously in the step.

[0037] e) forming q variables μ_(k) in accordance with the following rule: $\mu_{k}:={- \frac{y_{{({n - 1})},k}^{T} \cdot {\underset{\underset{\_}{\_}}{C}}_{\bullet,n}^{- 1}}{{\underset{\underset{\_}{\_}}{C}}_{n,n}^{- 1}}}$

[0038] y_((n−1),k) denotes the first (n−1) components of the vector y_(k) that were calculated for a preceding simulation time step. C_(·,n) ⁻¹ denotes the first (n−1) components of the nth row of the inverted covariance matrix C⁻¹ and C_(n,n) ⁻¹ denotes the element of the inverted covariance matrix C⁻¹ indexed by (n,n). This is carried out for k=1, . . . , q.

[0039] f) calculating q elements y_(k,n) which form the respective nth component of the vector y_(k) of length n from 1/f-distributed random numbers, specifically according to the following rule:

y _(k,n) =x _(k,n)*σ+μ_(k),

k=1, . . . , q.

[0040] The q vectors y_(k) (k=1, . . . , q) of length n from 1/f-distributed random numbers are arranged with particular advantage in a NOISE matrix and specify in a simulation the 1/f noise influences of a system to be simulated.

[0041] In accordance with the invention, the concept for simulating 1/f noise is based according to the invention on the following train of thought. The dynamic performance of a system that is exposed to stochastic influences is modeled adequately by a stochastic process. In order to simulate such a system dynamics, the general approach is to calculate numerically individual random realizations (so-called paths) of the fundamental stochastic processes. Simulating systems with 1/f noise sources requires paths of stochastic integrals of the form $\int_{0}^{t}{{Y(s)}{\eta_{\frac{1}{f}}(s)}\quad {s}}$

[0042] (s)ds to be calculated numerically. Here, s is an integration variable and t (upper integration limit) denotes the time, ${\eta_{\frac{1}{f}}(s)}{s}$

[0043] (s)ds denotes a 1/f noise source, and Y(s) a stochastic process that describes the temporal dynamics of a variable, for example the electric voltage in the circuit simulation.

[0044] Using B_(FBM)(s) to denote that stochastic process whose derivative (mathematically: derivative in the distribution sense) yields the 1/f noise process ${\eta_{\frac{1}{f}}(s)},$

[0045] it is possible to write the stochastic integral to be calculated as $\begin{matrix} {{\int_{0}^{t}{{Y(s)}{\eta_{\frac{1}{f}}(s)}\quad {s}}} = {\int_{0}^{t}{{Y(s)}d\quad {B_{FBM}(s)}}}} & (1.1) \end{matrix}$

[0046] The integral on the right-hand side is to be interpreted as a Riemann-Stieltjes integral of the stochastic process Y(s) with the process B_(FBM)(s) as an integrator. This integral can be approximated by a sum by decomposing the integration interval [0,t] in accordance with 0≡t₀<t₁< . . . <t≡t into n disjoint subintervals [t_(i), t_(i−j), i=1, n: $\begin{matrix} {{\int_{0}^{t}{{Y(s)}d\quad {B_{FBM}(s)}}} = {\sum\limits_{\lbrack{illegible}\rbrack}^{n}\quad {{Y\left( t_{i - 1} \right)}\left\lbrack {{B_{FBM}\left( t_{i} \right)} - {B_{FBM}\left( t_{i - 1} \right)}} \right\rbrack}}} & (1.2) \end{matrix}$

[0047] This sum is a random variable. The dependence on the result ω of the random experiment has been consistently omitted.

[0048] A process B_(FBM)(s) whose generalized derivative has a 1/f spectrum is known in the literature under the name of ‘Fractional Brownian Motion’. B_(FBM)(s) is a Gaussian stochastic process and is completely characterized as such by its expectation

E(B _(FBM)(s))=0∀s∈R   (1.3)

[0049] and by its covariance function

Cov(B _(FBM)(s),B _(FBM)(t))=const·(|s| ^(β+1) +|t| ^(β+1) −|t−s| ^(β+1))   (1.4)

[0050] The method according to the invention for on-demand generation of suitable random numbers essentially reduces the simulation of 1/f noise influences to the generation of realizations of the random variables [B_(FBM)(t_(i))−B_(FBM)(t_(i−1))], that is to say to the generation of increments of Fractional Brownian Motion.

[0051] The present invention permits the online generation of the required realizations of the random variables: ΔB_(FBM)(i), that is to say in the course of the successive integration of the system equations. This results in two requirements placed on the method:

[0052] (a) The length n of the sequence of random numbers {ΔB_(FBM)(1), . . . ,ΔB_(FBM)(n)} must remain variable during a simulation run. In particular, it must be possible at any time to lengthen the simulation (restart capability). This implies the capability of the method to generate the additional random numbers required for this purpose such that they are correlated in a correct way with the subsequence already generated.

[0053] (b) Let ti be the currently attained time in the course of a simulation. It must then be possible to determine the time interval [t_(i), t_(i+1)], that is to say the step size of the next integration step, from the instantaneous system dynamics—that is to say adaptively.

[0054] The invention meets both requirements by specifying a rule as to how a realization of {ΔB_(FBM)(1), . . . ,ΔB_(FBM)(n)}, that is to say a sequence of random numbers, can be generated successively, that is to say element by element. The step size Δt_(i):=t_(i)−t_(i−1) can be freely selected in this case for each new random number.

[0055] The first step is to investigate the approach for so-called “conditional densities”.

[0056] The first step is to consider the distribution of the random variable vectors (ΔB_(FBM)(1), . . . ,ΔB_(FBM)(n)).

[0057] Since the individual random variables ΔB_(FBM)(i) represent increments of a Gaussian stochastic process, the random variable vector (ΔB_(FBM)(1), . . . ,ΔB_(FBM)(n)) determines an n-dimensional Gaussian-distributed random variable, and thus completely defined by its (n-dimensional) expectation E and its covariance matrix C. The two variables can be calculated from the formulas (1.3) and (1.4) as

E(ΔB _(FBM)(i))=0,i=1, . . . , n   (3.5)

[0058] $\begin{matrix} {{{\underset{\_}{\underset{\_}{C}}}_{i,j}:={{{Cov}\left( {{\Delta \quad {B_{FBM}(i)}},{\Delta \quad {B_{FSM}(j)}}} \right)} = {{const} \cdot \left( {{- {{t_{j} - t_{i}}}^{\beta + 1}} + {{t_{j - 1} - t_{i}}}^{\beta + 1} + {{t_{j} - t_{i - 1}}}^{\beta + 1} - {{t_{j - 1} - t_{i - 1}}}^{\beta + 1}} \right)}}},i,{j = 1},\ldots \quad,n} & (3.6) \end{matrix}$

[0059] The online method according to the invention is now to be specified in the form of a complete induction.

[0060] The basis of the induction—and thus the starting point of the method—is the realization of a real Gaussian distribution with expectation 0 and variance Σ₁₁=2·const·|Δt₁|^(β+1).

[0061] It must be specified for the purpose of inductive influence how to expand a realization of (ΔB_(FBM)(1), . . . ,ΔB_(FBM)(n−1)) by a realization of ΔB_(FBM)(n) so as to produce overall a realization of (ΔB_(FBM)(1), . . . ,ΔB_(FBM)(n)). In order to simplify the notation, the already “cubed” subsequence of random numbers may be denoted by (y₁, . . . y_(n−1))=:y_((n−1)) ^(T) and the realization, still to be cubed, of ΔB_(FBM)(n) may be denoted by y_(n).

[0062] The problem can now be formulated as now described.

[0063] Let there be given an n-dimensional zero mean Gaussian random variable Z with the covariance matrix C. Let the first n−1 elements of a realization of Z be already cubed and known in the form of a random number vector y_((n−1)).

[0064] The aim is now to find the distribution from which the nth element y_(n) must be taken in order to complete y_((n−1)) to form a realization y=(y_((n−1)), y_(n)) of Z.

[0065] A solution to this task can be found when the conditional probability density ƒ(y_(n)|y_((n−1))) are considered for y_(n)—with the condition that y_((n−1)) already holds. This variable can be calculated in the present case of a Gaussian normal distribution as $\begin{matrix} {{f\left( y_{n} \middle| y_{({n - 1})} \right)} = {\frac{1}{\sqrt{2\pi \frac{1}{\underset{\_}{\underset{\_}{C_{n,n}^{- 1}}}}}}\exp {\left\{ {{- \frac{1}{2\frac{1}{\underset{\_}{\underset{\_}{C_{n,n}^{- 1}}}}}}\left( {y_{n} - \mu} \right)^{2}} \right\}.}}} & (3.7) \end{matrix}$

[0066] The variable C_(n,n) ⁻¹ is yielded in this case from the following notation of the inverted covariance matrix C⁻¹ as: $\begin{matrix} {{{\underset{\_}{\underset{\_}{C}}}^{- 1} = \left( \frac{{\underset{\_}{\underset{\_}{C}}}_{({n - 1})}^{- 1}}{\underset{\_}{\underset{\_}{C_{\bullet,n}^{- 1}}}} \middle| \frac{{\underset{\_}{\underset{\_}{C}}}_{\bullet,n}^{- 1}}{{\underset{\_}{\underset{\_}{C}}}_{n,n}^{- 1}} \right)},} & (3.8) \end{matrix}$

${{{where}\quad {\underset{\_}{\underset{\_}{C}}}_{({n - 1})}^{- 1}} \in R^{{({n - 1})}{X{({n - 1})}}}},{{{where}\quad {\underset{\_}{\underset{\_}{C}}}_{\bullet,n}^{- 1}} \in {R^{({n - 1})}\quad {and}\quad {where}\quad {\underset{\_}{\underset{\_}{C}}}_{n,n}^{- 1}} \in {R.}}$

[0067] The variable μ stands for $\begin{matrix} {{\mu:={- \frac{{{\underset{\_}{y}}_{({n - 1})}}^{T}{\underset{\_}{\underset{\_}{C}}}_{\bullet,n}^{- 1}}{{\underset{\_}{\underset{\_}{C}}}_{n,n}^{- 1}}}},} & (3.9) \end{matrix}$

[0068] The conditional density ƒ(y_(n)|y_((n−1))) is therefore the probability density of a Gaussian normal distribution with a mean of μ and variance of $\frac{1}{{\underset{\_}{\underset{\_}{C}}}_{n,n}^{- 1}}.$

[0069] It must hold that C_(n,n) ⁻¹≠0 in order for the above variance to exist. This is ensured on the basis of the following argumentation. Let C and C⁻¹ have the same characteristic directions and inverse eigenvalues. An eigenvalue 0 of the matrix C⁻¹ would therefore have an infinite variance of the random variable vector (ΔB_(FBM)(1), . . . ,ΔB_(FBM)(n)) as a consequence. It may therefore be presupposed that all the eigenvalues of C⁻¹ are nonvanishing. Since the eigenvalues of C⁻¹ are non-negative, in any case, it therefore holds that: The matrix C⁻¹ is symmetrical and positively defined. It is possible by renaming the coordinate axes to bring this matrix from the form (3.8) to the following form: $\begin{matrix} {{\overset{\_}{\underset{\_}{\underset{\_}{C}}}}^{- 1}:=\left( \frac{{\underset{\_}{\underset{\_}{\overset{\_}{C}}}}_{n,n}^{- 1}}{{\underset{\_}{\underset{\_}{\overset{\_}{C}}}}_{\bullet,n}^{- 1}} \middle| \frac{\left( {\underset{\_}{\underset{\_}{\overset{\_}{C}}}}_{\bullet,n}^{- 1} \right)^{T}}{{\underset{\_}{\underset{\_}{\overset{\_}{C}}}}_{({n - 1})}^{- 1}} \right)} & (3.10) \end{matrix}$

[0070] This matrix is likewise symmetrical and positively defined per constructionem. In accordance with the Sylvester criterion for symmetrical and positively defined matrices, it follows therefrom that ({overscore (C)}⁻¹)₁₁=C_(n,n) ⁻¹>0, and the assertion is demonstrated.

[0071] The method according to the invention reduces a simulation of $\frac{1}{f}$

[0072] noise sources to the generation of Gaussian-distributed random numbers.

[0073] The inverted covariance matrix C⁻¹ (an n×n matrix) is required in order to generate a random number y_(n) that is correlated in the way required with an already generated sequence y_((n−1)). Strictly speaking, all that is required is knowledge of the nth row of this matrix, that is to say knowledge of $\left( {\left( {\underset{\_}{\underset{\_}{C}}}_{\bullet,n}^{- 1} \right)^{T},{\underset{\_}{\underset{\_}{C}}}_{n,n}^{- 1}} \right).$

[0074] As is to be read from formula (3.6), the covariance matrix C depends on the decomposition of the simulation interval [0,t_(n)] into disjoint subintervals (step sizes) [t_(i−1), t_(i)]. In particular, the last column of C depends on t_(n) (doing so identically with the last row because of the symmetry of C), and thus on the current step size Δt_(n)=t_(n)−t_(n−1).

[0075] The left-hand upper (n−1)×(n−1) submatrix {overscore (C)} of the n×n covariance matrix C is precisely the covariance matrix for a random number sequence of length n−1. This covariance matrix had already to be determined and inverted for calculating y(n−1) or for calculating the last element (y_(n−1)). In order to accelerate the method, it is therefore possible to have recourse to an incremental method for matrix inversion, for example by use of the Schur complement.

[0076] The invention is also implemented in a method for simulating a technical system that is subject to 1/f noise. In this case, random numbers that have been determined with the aid of a method according to the invention are used in modeling and/or fixing the variables present on the input channels of the system.

[0077] Also provided is a computer system and/or a computer program for determining sequences of random numbers of a 1/f noise, or for executing the other methods according to the invention. The invention is also implemented in a data medium having such a computer program. Furthermore, the invention is implemented in a method in which a computer program according to the invention is downloaded from an electronic data network, such as from the Internet, for example, on a computer connected to the data network.

[0078] Other features which are considered as characteristic for the invention are set forth in the appended claims.

[0079] Although the invention is illustrated and described herein as embodied in a method for on-demand generation of individual random numbers of a sequence of random numbers of 1/f noise, it is nevertheless not intended to be limited to the details shown, since various modifications and structural changes may be made therein without departing from the spirit of the invention and within the scope and range of equivalents of the claims.

[0080] The construction and method of operation of the invention, however, together with additional objects and advantages thereof will be best understood from the following description of specific embodiments when read in connection with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0081]FIG. 1 is a block diagram of a technical system to be simulated;

[0082]FIG. 2 is a structogram for determining sequences of random numbers of 1/f noise;

[0083] FIGS. 3A-3F show calculation examples for a first simulation time step;

[0084] FIGS. 4A-4F show calculation examples for a second simulation time step; and

[0085] FIGS. 5A-5F show calculation examples for a third simulation time step.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0086] Referring now to the figures of the drawing in detail and first, particularly, to FIG. 1 thereof, there is shown a schematic diagram of a noisy system that is to be simulated.

[0087] The system is described by a system model 1 that is indexed as a box and describes the system behavior. The system behavior results from input channels 2, which are also designated as vector INPUT and from output channels 3, which are also designated as OUTPUT. Furthermore, a system-dictated noise is provided, which is present on noise input channels 4 and which is also designated as a vector or as a matrix NOISE. The matrix NOISE is present when the noise is taken into account with a plurality of channels, each column of the matrix NOISE containing a vector of noise values which are present on a noise input channel.

[0088] The noise on the noise input channels 4 is preferably interpreted as a noise-dictated alteration of the system model 1.

[0089] The behavior of the input channels 2 and of the output channels 3 can be described by a system of differential equations or by a system of differential-algebraic equations, so that reliable predictions of the system behavior are possible.

[0090] For each time step of the simulation of the system shown in FIG. 1, a vector OUTPUT of the output channels 3 is calculated for a vector INPUT present on the input channels 2 and for a vector NOISE present on the noise input channels 4.

[0091] For the simulation over a relatively long period of time, the vectors INPUT, OUTPUT, NOISE are expediently specified as a matrix, a respective column k of the relevant matrix containing the values of the corresponding time series of the relevant INPUT, OUTPUT, NOISE.

[0092]FIG. 2 illustrates how a respective vector y_(k) is attained which forms a column k of the matrix NOISE for the noise input channels 4 of the system model 1. Each vector y_(k) serves for simulating a noise source.

[0093] In a first step, a desired spectral value β, and an intensity constant const are fixed. Furthermore, a counter n of the current simulation time interval is set to 0. The following sequence of computation steps is then carried out successively for each simulation time step.

[0094] First, the current simulation time step is fixed. Equivalently to this, it is also possible to fix the end of the current simulation time step, thereby producing the next point in time under consideration.

[0095] Afterward, the counter n of the current simulation time step is incremented by one.

[0096] The covariance matrix C of dimension (n×n) is subsequently determined according to equation (3.6).

[0097] This is followed by the step of inverting the matrix C, for example by use of a Cholesky decomposition. In order to raise the efficiency, it is also possible in this case to appeal to the inverse matrix of the previous step, for example by using Schur complement techniques.

[0098] Next, the variable σ is calculated from the formula

σ=sqrt(1/e(n,n))

[0099] where sqrt denotes the “square root” function and where e(n,n) denotes that element of the inverted covariance matrix C⁻¹ which is indexed by (n,n).

[0100] In addition, a value of a (0,1)-normally distributed random variable X_(k) is extracted and the vector x_(k) of the normally distributed random numbers is thereby supplemented. The extracted random number has the expectation of 0 and the variance of 1. This step is carried out for each noise source to be simulated.

[0101] Furthermore, a variable μ_(k) is formed. It is formed from the first (n−1) components of the nth row of the inverted covariance matrix C⁻¹ and from the sequence of (n−1) 1/f-distributed random numbers which were calculated for the preceding (n−1) simulation time steps.

[0102] For this purpose, the procedure is in accordance with formula (3.9). This step is carried out for each noise source k to be simulated.

[0103] Finally, that element of the matrix NOISE is calculated whose column index k specifies the noise source to be simulated and whose row index is equal to n. The current simulation time step is denoted by this. The currently calculated element r(k,n) of the matrix NOISE represents a random number which, together with the superjacent (n−1) elements of the same column k of NOISE, forms a vector y_(k) of length n from 1/f-distributed random numbers. The vector y_(k) serves for simulating one of the noise sources for the first n simulation time steps.

[0104] Each element y_(k) of the nth row of NOISE is then determined, on the basis of equations (3.7)-(3.9), from the last random number x_(k) of the vector x and the variables μ_(x) and σ, to be precise according to the following rule:

y _(k) =x _(k)*σ+μ_(x).

[0105]FIGS. 3A to 5F depict exemplary embodiments reproducing concrete results of calculation.

[0106] The value of the spectral value β is always adopted in this case as 0.5. The value of the intensity const is arbitrarily adopted as 1.0. Three random numbers are simultaneously processed in each case in accordance with the simulation of three noise sources simultaneously acting, on separate channels, on the system to be simulated and which are disposed in a vector y_(k), k being an integral value from 1 to 3.

[0107] FIGS. 3A-3F show a calculation example for a first simulation time step [t₀,t₁]=[0,0.5].

[0108]FIG. 3A shows the covariance matrix C of dimension 1×1 for generating a 1/f-distributed random number in the case of the simulation step size. C represents here only a scalar with the value 0.70, because C(1,1)—that is to say with i=j=1—results upon applying equation (3.6) as

1.0·(−|t ₁ −t ₁|^(0.5+1) +|t ¹⁻¹ −t ₁|^(0.5+1) +|t ₁ −t ¹⁻¹|^(0.5+1) −|t ¹⁻¹ −t ¹⁻¹|^(0.5+1))=0+0.5^(1.5)+0.5^(1.5)−0=0.707106 . . . ;

[0109]FIG. 3B shows the inverse of the covariance matrix C from FIG. 3A, something which was performed here by use of a Cholesky decomposition not illustrated in more detail here. A check of (C C⁻¹)=(0.707106 . . . 0.707106 . . . ⁻¹) yields the correct value 1, and this illustrates the correctness of the value for C(1,1).

[0110]FIG. 3C shows a variable σ for the first simulation step n=1. This is yielded from the equation

σ=sqrt(1/0.707106 . . . ),

[0111] sqrt denoting the square root and e (1,1) denoting the element 0.707106 . . . , indexed by (1,1), of the inverted covariance matrix C⁻¹.

[0112]FIG. 3D shows three values x₁, x₂, x₃ of a (0,1)-normally distributed random variable X_(k) for one noise source to be simulated in each case. These values form the first element of one vector x_(k) each of the normally distributed random numbers. The extracted random numbers have the expectation of 0 and the variance of 1.

[0113]FIG. 3E shows three variables μ_(k) for each of the three noise sources to be simulated. The variable μ_(k) is yielded in accordance with formula (3.9) from the first (n−1) components of the nth row of the inverted covariance matrix C⁻¹ as well as from the sequence of (n−1) 1/f-distributed random numbers that were calculated for the preceding (n−1) simulation time steps. In the first simulation step, these two vectors each have the length 0. It therefore follows for all the variables μ_(k) in the first simulation step that: μ_(k)=0.

[0114]FIG. 3F shows three vectors y_(k) of length 1 of 1/f-distributed random numbers that simulate the behavior of three 1/f-distributed noise sources of the first simulation time step [0, t₁]=[0, 0.5]. The matrix NOISE is yielded from the three vectors y_(k). The value k is an integral value of from 1 to 3 in this case. Each element y_(k) of the first row of NOISE is determined on the basis of equations (3.7)-(3.9) according to the following rule from the last random number x_(k) of the associated vector x and the variables μ_(κ)and σ₁. For example, the first element y₁(n=1) of the first vector y₁ is calculated as follows:

y ₁(n=1)=x ₁(n=1)*σ+μ₁==−0.35 . . . *0.84 . . . +0.00 . . . ==−0.30 . . .

[0115] y₂(n=1) and y₃(n=1) are calculated by analogy herewith.

[0116] With the aid of FIGS. 4A to 4F, there is shown a calculation example of a second simulation time step [t₁, t₂]=[0.5, 0.75]. The value n for the second simulation time step is always equal to 2.

[0117]FIG. 4A shows the covariance matrix C of dimension (n×n)=2×2, which is required for generating one further random number each per noise source. Together with the result in accordance with FIG. 3F, the random number thus newly generated forms a vector y_(k) of length 2 from 1/f-distributed random numbers. A vector y_(k) is generated in this case for each noise source. The covariance matrix C is determined in this case according to equation (3.6).

[0118] For example, this is carried out at the element C(2,1)—that is to say with i=2 and j=1. From applying equation (3.6), C(2,1) is yielded as 1.0 ⋅ (−t₁ − t₂^(0.5 + 1) + t¹ ⁻ ¹ − t₂^(0.5 + 1) + t₁ − t² ⁻ ¹^(0.5 + 1) − t¹ ⁻ ¹ − t² ⁻ ¹^(0.5 + 1)) = (−0.5 − 0.75^(0.5 + 1) + 0 − 0.75^(0.5 + 1) + 0.5 − 0.5^(0.5 + 1) − 0 − 0.5^(0.5 + 1)) = −0.125 + 0.6495  … + 0 − 0.3535  … = 0.1709  …

[0119]FIG. 4B shows the inverse of the covariance matrix C from FIG. 4A. A check (not illustrated here) of the condition (C C⁻¹) yields a matrix of dimension 2×2, in the case of which the elements indexed by (1,1) and (2,2) are equal to 1. The other elements have the value 0.

[0120]FIG. 4C shows a variable σ that is calculated from the inverted covariance matrix C⁻¹ of step 4B. The variable σ is yielded as

σ=sqrt(1/e(n,n))=sqrt(1/e(2,2))==sqrt(1/4.79 . . . )=0.45 . . . ;

[0121] sqrt denoting the square root, and e(2,2) denoting the element, indexed by (2,2) of the inverted covariance matrix C⁻¹ from FIG. 4B.

[0122]FIG. 4D shows three vectors x_(k) of independent (0,1)-normally distributed random numbers, the vectors x_(k) each having a length of 2. A (0,1)-normally distributed random variable x_(k) is extracted per noise source to be simulated. The extracted random number in each case has the expectation of 0 and the variance of 1. The vectors x_(k) of the normally distributed random numbers from FIG. 3D are thereby supplemented such that the vectors x_(k) of the normally distributed random numbers from FIG. 4D result.

[0123]FIG. 4E shows three variables μ_(k) that were calculated from the inverted covariance matrix C⁻¹ in accordance with step 4B and from the three random numbers in accordance with step 3F. For each noise source to be simulated, the variable μ_(k) is calculated from the (n−1) first components of the nth row of the inverted covariance matrix C⁻¹ and from the sequence of a quantity (n−1) of 1/f-distributed random numbers that were calculated in accordance with formula (3.9) for the preceding (n−1) simulation time steps. In the second simulation step, the variable μ_(k) is thus calculated from the first component of the second row of C⁻¹ as well as from the first component of the vector y_(k). This is carried out, for example, with the aid of the value μ₁: $\begin{matrix} {\mu_{1} = {\frac{{\underset{\_}{y}}_{{({n - 1})},1}^{T} \cdot {\underset{=}{C}}_{\bullet \quad,n}^{- 1}}{{\underset{=}{C}}_{n,n}^{- 1}} =}} \\ {= {\frac{{- 0.30}{\ldots \cdot {- 1.15}}\ldots}{4.79\ldots} =}} \\ {= {{- 0.07}{\ldots \quad.}}} \end{matrix}$

[0124]FIG. 4F shows three vectors y_(k) of length 2 with 1/f-distributed random numbers that simulate the behavior of three 1/f-distributed noise sources for the second simulation time step [t₁, t₂]=[0.5, 0.75]. The matrix NOISE is yielded from the three vectors y_(k). The value k is an integral value of from 1 to 3 in this case. Each element y_(k) of the second row of NOISE is determined on the basis of equations (3.7)-(3.9) according to the following rule from the last random number x_(k) of the associated vector x and the variables μ_(k) and σ. By way of example, the second element y₁(n=2) of the first vector y₁ is calculated below:

y ₁(n=2)=x ₁(n=2)*σ+μ₁==0.39 . . . *0.45 . . . −0.07 . . . ==0.10 . . .

[0125] With the aid of FIGS. 5A-5F, there is shown a calculation example for a third simulation time step [t₂, t₃]=[0.75, 1.25]. The value n is always equal to 3 during the third simulation time step.

[0126]FIG. 5A shows the covariance matrix C of dimension (n×n)=3×3, which is required for generating one further random number each per noise source. Together with the result in accordance with FIG. 4F, the random number thus newly generated forms a vector y_(k) of length 3 from 1/f-distributed random numbers. A vector y_(k) is generated in this case for each noise source. The covariance matrix C is determined in this case according to equation (3.6).

[0127] For example, this is carried out at the element C(3,1)—that is to say with i=3 and j=1. From applying equation (3.6), C(3,1) is yielded as $\begin{matrix} {{1.0 \cdot \left( \left. {{- {{t_{1} - t_{3}}}^{0.5 + 1}} + {{t_{1 - 1} - t_{3}}}^{0.5 + 1} + {{t_{1} - t_{3 - 1}}}^{0.5 + 1} -} \middle| {t_{1 - 1} - t_{3 - 1}} \right|^{0.5 + 1} \right)} =} \\ {\quad {= \left( {{- {{0.5 - 1.25}}^{0.5 + 1}} + {{0 - 1.25}}^{0.5 + 1} + {{0.5 - 0.75}}^{0.5 + 1} - {{0 - 0.75}}^{0.5 + 1}} \right)}} \\ {\quad {= {{{{- 0.6495}\ldots}\quad + {1.3975\ldots}\quad + 0.125 - {0.6495\ldots}} = {0.22{\ldots \quad.}}}}} \end{matrix}$

[0128]FIG. 5B shows the inverse C⁻¹ of the covariance matrix C from FIG. 5A. A check (not illustrated here) of the condition (C C⁻¹) yields a matrix of dimension 3×3, in the case of which the elements indexed by (1,1), (2,2) and (3,3) are equal to 1. The other elements have the value 0.

[0129]FIG. 5C shows a variable σ that is calculated from the inverted covariance matrix C⁻¹ of step 5B. The variable σ is yielded as

σ=sqrt(1/e(n,n))=sqrt(1/e(3,3))==sqrt(1/1.75 . . . )=0.75 . . . ;

[0130] sqrt denoting the square root, and e(3,3) denoting the element, indexed by (3,3) of the inverted covariance matrix C⁻¹ from FIG. 5B.

[0131]FIG. 5D shows three vectors x_(k) of independent (0,1) normally distributed random numbers, the vectors x_(k) each having a length of 3. A (0,1) normally distributed random variable x_(k) is extracted per noise source to be simulated. The extracted random number in each case has the expectation of 0 and the variance of 1. The vectors x_(k) of the normally distributed random numbers from FIG. 4D are thereby supplemented such that the vectors x_(k) of the normally distributed random numbers from FIG. 5D result.

[0132]FIG. 5E shows three variables μ_(k) that were calculated from the inverted covariance matrix C⁻¹ in accordance with step 5 b and from the three random numbers in accordance with step 4 f. For each noise source to be simulated, the variable μ_(k) is calculated from the (n−1) first components of the nth row of the inverted covariance matrix C⁻¹ and from the sequence of (n−1) 1/f-distributed random numbers that were calculated in accordance with formula (3.9) for the preceding (n−1) simulation time steps. In the second simulation step, the variable μ_(k) is thus calculated from the first two components of the third row of C⁻¹ as well as from the first two components of the vector y_(k). This is carried out, for example, with the aid of the value μ₁: $\begin{matrix} {\mu_{1} = {\frac{{\underset{\_}{y}}_{{({n - 1})},1}^{T} \cdot {\underset{=}{C}}_{\bullet \quad,n}^{- 1}}{{\underset{=}{C}}_{n,n}^{- 1}} =}} \\ {= {\frac{{{- 0.30}{\ldots \cdot {- 0.31}}\ldots} + {0.10{\ldots \cdot {- 0.98}}}}{1.75\ldots} =}} \\ {= {{- 0.00}{\ldots \quad.}}} \end{matrix}$

[0133]FIG. 5F shows three vectors y_(k) of length 3 with 1/f-distributed random numbers that simulate the behavior of three 1/f-distributed noise sources for the third simulation time step [t₂, t₃]=[0.75, 1.25]. The matrix NOISE is yielded from the three vectors y_(k). The value k is an integral value of from 1 to 3 in this case. Each element y_(k) of the third row of NOISE is determined on the basis of equations (3.7)-(3.9) according to the following rule from the last random number x_(k)(n=3) of the associated vector x and the variables μ_(k) and σ. By way of example, the third element y₁(n=3) of the first vector y₁ is calculated below:

y ₁(n=3)=x ₁(n=3)*σ+μ₁==−0.90 . . . *0.75 . . . +0.00 . . . ==0.67 . . .

[0134] The following conditions remain to be observed for the purpose of concrete execution of the calculation examples shown.

[0135] The numerical values shown in FIGS. 3, 4 and 5 reproduce intermediate and final results of the computing steps, described with reference to FIG. 2, for a first, for a second and for a third simulation interval. In this case, after accurate numerical calculation, all values are truncated after the second decimal place following the point in order to be able to reproduce them more effectively. Consequently, when computationally reaccomplishing the exemplary embodiments, it is necessary to calculate further not with the intermediate values shown in the figures, but with the exact intermediate values, in order to reach the specified y vectors starting from the specified x vectors.

[0136] Vectors of (0,1) normally distributed random variables are shown in FIGS. 3C, 4C and 5C. In this case, a random variable represents a noise source in each case. For the sake of simplicity, it is not illustrated here how such random numbers are reached with the aid of the expectation of 0 and the variance of 1. This is familiar to the person skilled in the art. 

We claim:
 1. A method for generating at least one sequence of random numbers of 1/f noise, which comprises the steps of: determining a desired spectral value β; determining a number of the random numbers of the 1/f noise to be generated; determining an intensity constant const; setting a starting value for a running variable n; performing a loop-type repetition until a desired number of elements y(n) of a vector y of length n is calculated from 1/f-distributed random numbers, by the steps of: increasing a current value of the running variable n by 1; setting a simulation time step [t_(n−1); t_(n)]; determining elements C_(ij) of a covariance matrix C of dimension (n×n) according to: C _(ij) :=const·(−|t _(j) −t _(i)|^(β+1) +|t _(j−1) −t _(i)|^(β+1) +|t _(j) −t _(i−1)|^(β+1) −|t _(j−1) −t _(i−1)|^(β+1)) i, j=1, . . . , n determining an inverted covariance matrix C⁻¹ by inverting the covariance matrix C; determining a variable σ in accordance with σ=sqrt(1/e(n,n)), where sqrt denotes a square root function, and e(n,n) denotes an element of the inverted covariance matrix C⁻¹ indexed by (n,n); determining a (0,1)-normally distributed random number which forms an nth component of a vector x of length n; forming a variable μ from first (n−1) components of an nth row of the inverted covariance matrix C⁻¹ and (n−1) elements of the vector y calculated for a preceding (n−1) simulation time step, according to: $\mu:={- \frac{y_{({n - 1})}^{T} \cdot {\underset{=}{C}}_{\bullet \quad,n}^{- 1}}{{\underset{=}{C}}_{n,n}^{- 1}}}$

where y_((n−1)) denotes first (n−1) elements of the vector y, C_(·,n) ⁻¹ denotes the first (n−1) components of the nth row of the inverted covariance matrix C⁻¹, and C_(n,n) ⁻¹ denotes a component of the inverted covariance matrix C⁻¹ indexed by (n,n); and calculating an element y(n) of the vector y of length n from the 1/f-distributed random numbers, according to: y(n)=x(n)*σ+μ.
 2. A method for generating at least one sequence of random numbers of 1/f noise, which comprises the steps of: determining a desired spectral value β; determining a number of the random numbers of the 1/f noise to be generated; determining an intensity constant const; setting a starting value for a running variable n; calculating q sequences of the random numbers of the 1/f noise simultaneously, by performing loop-type repetitions until a desired number of elements y_(k,n) of a vector y of length n is calculated from 1/f-distributed random numbers, by the steps of: increasing a current value of the running variable n by 1; setting a simulation time step [t_(n−1); t_(n)]; determining elements C_(ij) of a covariance matrix C of dimension (n×n) according to: C _(ij) :=const·(−|t _(j) 31 t _(i)|^(β+1) +|t _(j−1) −t _(i)|^(β+1) +|t _(j) −t _(i−1)|^(β+1) −|t _(j−1) −t _(i−1)|^(β+1)) i, j=1, . . . , n determining an inverted covariance matrix C⁻¹ by inverting the covariance matrix C; determining a variable σ in accordance with σ=sqrt(1/e(n,n)), where sqrt denotes a square root function, and e(n,n) denotes an element of the inverted covariance matrix C⁻¹ indexed by (n,n); determining a quantity q of (0,1)-normally distributed random numbers x_(k,n) which form a respective last component of vectors x_(k) of length n, where k=1, . . . , q, forming q variables μ_(k) according to: $\mu_{k}:={- \frac{y_{{({n - 1})},k}^{T} \cdot {\underset{=}{C}}_{\bullet \quad,n}^{- 1}}{{\underset{=}{C}}_{n,n}^{- 1}}}$

where y_((n−1),k) denotes first (n−1) components of the vectors y_(k) that were calculated for a preceding simulation time step, C_(·,n) ⁻¹ denotes the first (n−1) components of the nth row of the inverted covariance matrix C⁻¹, and C_(n,n) ⁻¹ denotes the element of the inverted covariance matrix C⁻¹ indexed by (n,n), where k=1, . . . , q; and calculating q elements y_(k,n) which form a respective nth component of the vector y_(k) of length n from 1/f-distributed random numbers, according to: y _(k,n) =x _(k,n)*σ+μ_(k), where k=1, . . . , q.
 3. A method for simulating a technical system subject to 1/f noise, which comprises the steps of: determining random numbers according to claim 1; and using the random numbers for modeling variables present on input channels of the technical system.
 4. A method for simulating a technical system subject to 1/f noise, which comprises the steps of: determining random numbers according to claim 2; and using the random numbers for modeling variables present on input channels of the technical system.
 5. A computer program, comprising: computer-executable instructions for carrying out the method according to claim 1 for determining the sequences of random numbers of the 1/f noise.
 6. A computer program, comprising: computer-executable instructions for carrying out the method according to claim 2 for determining the sequences of random numbers of the 1/f noise.
 7. A computer-readable data medium having the computer-executable instructions according to claim
 5. 8. A computer-readable data medium having the computer-executable instructions according to claim
 6. 9. A downloading method, which comprises the step of: downloading the computer program according to claim 5 from an electronic data network onto a computer connected to the electronic data network.
 10. The method according to claim 10, which further comprises using the Internet as the electronic data network.
 11. A downloading method, which comprises the step of: downloading the computer program according to claim 6 from an electronic data network onto a computer connected to the electronic data network.
 12. The method according to claim 11, which further comprises using the Internet as the electronic data network.
 13. A computer system, comprising: means for executing the method for determining the sequences of random numbers of the 1/f noise according to claim
 1. 14. A computer system, comprising: means for executing the method for determining the sequences of random numbers of the 1/f noise according to claim
 2. 15. A computer system, comprising: means for executing the method for determining the sequences of random numbers of the 1/f noise according to claim
 3. 16. A computer system, comprising: means for executing the method for determining the sequences of random numbers of the 1/f noise according to claim
 4. 17. A method for simulating a technical system subject to 1/f noise, which comprises the steps of: determining random numbers according to claim 1; and using the random numbers for fixing variables present on input channels of the technical system.
 18. A method for simulating a technical system subject to 1/f noise, which comprises the steps of: determining random numbers according to claim 1; and using the random numbers for fixing variables present on input channels of the technical system. 